//package io.github.talelin.latticy.common.configuration;
//
///**
// * @authoer:wulongbo
// * @createDate:2022/7/9
// * @description:
// */
//
//
//import org.kie.api.KieBase;
//import org.kie.api.KieServices;
//import org.kie.api.builder.KieBuilder;
//import org.kie.api.builder.KieFileSystem;
//import org.kie.api.builder.KieRepository;
//import org.kie.api.runtime.KieContainer;
//import org.kie.internal.io.ResourceFactory;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.core.io.Resource;
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
//import org.springframework.core.io.support.ResourcePatternResolver;
//
//import java.io.IOException;
//
///**
// * 规则引擎配置类
// */
//@Configuration
//public class DroolsAutoConfiguration {
//    private static final String RULES_PATH = "rules/";
//
//    @Bean
//    @ConditionalOnMissingBean(KieServices.class)
//    public KieServices getKieServices() {
//        return KieServices.Factory.get();
//    }
//
//    @Bean
//    @ConditionalOnMissingBean(KieFileSystem.class)
//    public KieFileSystem kieFileSystem() throws IOException {
//        //设置日期格式
//        System.setProperty("drools.dateformat", "yyyy-MM-dd");
//        KieFileSystem kieFileSystem = getKieServices().newKieFileSystem();
//        for (Resource file : getRuleFiles()) {
//            kieFileSystem.write(ResourceFactory.newClassPathResource(RULES_PATH + file.getFilename(), "UTF-8"));
//        }
//        return kieFileSystem;
//    }
//
//    private Resource[] getRuleFiles() throws IOException {
//        ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
//        return resourcePatternResolver.getResources("classpath*:" + RULES_PATH + "*.*");
//    }
//
//    @Bean
//    @ConditionalOnMissingBean(KieContainer.class)
//    public KieContainer kieContainer() throws IOException {
//        final KieRepository kieRepository = getKieServices().getRepository();
//        kieRepository.addKieModule(kieRepository::getDefaultReleaseId);
//        KieBuilder kieBuilder = getKieServices().newKieBuilder(kieFileSystem());
//        kieBuilder.buildAll();
//        return getKieServices().newKieContainer(kieRepository.getDefaultReleaseId());
//    }
//
//    @Bean
//    @ConditionalOnMissingBean(KieBase.class)
//    public KieBase kieBase() throws IOException {
//        return kieContainer().getKieBase();
//    }
//}
